import request from "@/utils/request";

const FACTORYMEMBER_BASE_URL = "/api/v1/factory-member";

const FactoryMemberAPI = {
  /** 获取服装厂员工信息分页数据 */
  getPage(queryParams?: FactoryMemberPageQuery) {
    return request<any, PageResult<FactoryMemberPageVO[]>>({
      url: `${FACTORYMEMBER_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取服装厂员工信息表单数据
   *
   * @param id 服装厂员工信息ID
   * @returns 服装厂员工信息表单数据
   */
  getFormData(id: number) {
    return request<any, FactoryMemberForm>({
      url: `${FACTORYMEMBER_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加服装厂员工信息
   *
   *  @param data 服装厂员工信息表单数据
   */
  add(data: FactoryMemberForm) {
    return request({
      url: `${FACTORYMEMBER_BASE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 更新服装厂员工信息
   *
   * @param id 服装厂员工信息ID
   * @param data 服装厂员工信息表单数据
   */
  update(id: number, data: FactoryMemberForm) {
    return request({
      url: `${FACTORYMEMBER_BASE_URL}/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 批量删除服装厂员工信息，多个以英文逗号(,)分割
   *
   * @param ids 服装厂员工信息ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${FACTORYMEMBER_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default FactoryMemberAPI;

/** 服装厂员工信息分页查询参数 */
export interface FactoryMemberPageQuery extends PageQuery {}

/** 服装厂员工信息表单对象 */
export interface FactoryMemberForm {
  /** 员工ID（主键） */
  id?: number;
  /** 员工编号/工号 */
  employeeId?: string;
  /** 姓名 */
  name?: string;
  /** 性别 */
  gender?: string;
  /** 身份证号 */
  idCard?: string;
  /** 联系电话 */
  phone?: string;
  /** 紧急联系人 */
  emergencyContact?: string;
  /** 紧急联系人电话 */
  emergencyPhone?: string;
  /** 家庭住址 */
  address?: string;
  /** 照片URL */
  photoUrl?: string;
  /** 部门/车间 */
  department?: string;
  /** 班组/产线 */
  teamGroup?: string;
  /** 岗位 */
  position?: string;
  /** 工种/工序 */
  jobType?: string;
  /** 技能等级 */
  skillLevel?: string;
  /** 擅长服装类型 */
  specializedCategory?: string;
  /** 会操作的设备 */
  operableEquipment?: string;
  /** 入职日期 */
  hireDate?: Date;
  /** 合同开始日期 */
  contractStartDate?: Date;
  /** 合同结束日期 */
  contractEndDate?: Date;
  /** 在职状态 */
  employmentStatus?: string;
  /** 离职日期 */
  resignationDate?: Date;
  /** 离职原因 */
  resignationReason?: string;
  /** 计薪方式 */
  salaryType?: string;
  /** 底薪/保底工资 */
  baseSalary?: number;
  /** 计件单价 */
  pieceRate?: number;
  /** 社保号 */
  socialInsuranceNumber?: string;
  /** 银行账号 */
  bankAccount?: string;
  /** 日均产量 */
  dailyOutputAvg?: number;
  /** 质量合格率(%) */
  qualityPassRate?: number;
  /** 返工率(%) */
  reworkRate?: number;
  /** 绩效评分 */
  performanceRating?: number;
  /** 创建时间 */
  createdAt?: string;
  /** 更新时间 */
  updatedAt?: string;
  /** 创建人 */
  createdBy?: string;
  /** 更新人 */
  updatedBy?: string;
  /** 备注 */
  notes?: string;
}

/** 服装厂员工信息分页对象 */
export interface FactoryMemberPageVO {
  /** 员工ID（主键） */
  id?: number;
  /** 员工编号/工号 */
  employeeId?: string;
  /** 姓名 */
  name?: string;
  /** 性别 */
  gender?: string;
  /** 身份证号 */
  idCard?: string;
  /** 联系电话 */
  phone?: string;
  /** 紧急联系人 */
  emergencyContact?: string;
  /** 紧急联系人电话 */
  emergencyPhone?: string;
  /** 家庭住址 */
  address?: string;
  /** 照片URL */
  photoUrl?: string;
  /** 部门/车间 */
  department?: string;
  /** 班组/产线 */
  teamGroup?: string;
  /** 岗位 */
  position?: string;
  /** 工种/工序 */
  jobType?: string;
  /** 技能等级 */
  skillLevel?: string;
  /** 擅长服装类型 */
  specializedCategory?: string;
  /** 会操作的设备 */
  operableEquipment?: string;
  /** 入职日期 */
  hireDate?: Date;
  /** 合同开始日期 */
  contractStartDate?: Date;
  /** 合同结束日期 */
  contractEndDate?: Date;
  /** 在职状态 */
  employmentStatus?: string;
  /** 离职日期 */
  resignationDate?: Date;
  /** 离职原因 */
  resignationReason?: string;
  /** 计薪方式 */
  salaryType?: string;
  /** 底薪/保底工资 */
  baseSalary?: number;
  /** 计件单价 */
  pieceRate?: number;
  /** 社保号 */
  socialInsuranceNumber?: string;
  /** 银行账号 */
  bankAccount?: string;
  /** 日均产量 */
  dailyOutputAvg?: number;
  /** 质量合格率(%) */
  qualityPassRate?: number;
  /** 返工率(%) */
  reworkRate?: number;
  /** 绩效评分 */
  performanceRating?: number;
  /** 创建时间 */
  createdAt?: string;
  /** 更新时间 */
  updatedAt?: string;
  /** 创建人 */
  createdBy?: string;
  /** 更新人 */
  updatedBy?: string;
  /** 备注 */
  notes?: string;
}
